import {
    createRouter, createWebHashHistory,
    createWebHistory
} from "vue-router"
import indexRoute, {HOME_ROUTE} from '@/router/routes/index/index.js'
import loginRoute from '@/router/routes/login/login.js'
import errorRoute from '@/router/routes/error/error.js'
import {afterEachHandler, beforeEachHandler} from "@/router/GlobalRouteGuard.js";

const env = import.meta.env
const APP_BASE_URL = env.VITE_APP_BASEURL

// 根路由
export const ROOT_ROUTE = 'root'

/**
 * 创建并配置 vue-router 实例对象
 *
 * @type {Router} vue-router 实例对象
 */
const router = createRouter({
    // 页面历史模式采用 html5 历史模式（网页 url 中不带 #）
    // history: createWebHistory(),
    history: createWebHashHistory(),
    // 配置页面路由
    routes: [
        // 重定向到根路由
        {
            path: '/',
            redirect: {name: HOME_ROUTE}
        },
        // 根路由
        {
            name: ROOT_ROUTE,
            path: '/',
            children: [
                // 主页面
                indexRoute,
                // 登录
                loginRoute,
                // 错误
                errorRoute,
            ]
        },
    ]
})

/**
 * 全局前置路由守卫
 */
router.beforeEach(beforeEachHandler)

/**
 * 全局后置路由守卫
 */
router.afterEach(afterEachHandler)

/**
 * 默认导出 vue-router 实例对象
 */
export default router